home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
ask
/
ksd
/
source
/
ksd.h
< prev
next >
Wrap
Text File
|
1998-09-30
|
6KB
|
168 lines
/* AIGライブラリ KSDサポート関数
Copyright (C) 1997,98 by AIG-SOFT
*/
#ifndef __AIG_KSD__
#define __AIG_KSD__ 1 /* ヘッダー読み込みシンボル */
#ifndef __CLASS_H
#include <class.h>
#endif
/* 定数 */
#define KSD_SYMBOL "AIG-KSD" /* デバイスシンボル */
#define KSD_ST_SIZE 64 /* IOCTRL INに必要なバッファーサイズ */
#define KSD_SEP ('/') /* IOCTRL INの各データのセパレーター */
// 実際にはKSDDevName()を使えば、これらのデバイス名定数を使うことはない
//(通常は使わないように)
#define KSD_NAME "@KEY" /* デバイス名 通常 */
#define KSD_NAME2 "@KSD" /* デバイス名 /K時 */
// 外部起動プログラムテーブル
struct ksd_ef {
UBYTE Scan; // 起動ScanCode
UBYTE Shift; // 起動Shift状態
int (*Exec)(); // 起動プログラム
struct ksd_ef *Next; // 次のテーブルアドレス
};
typedef struct ksd_ef KSD_EF;
// APIコマンド
#define KSD_Clear 'C' /* キーバッファークリア */
#define KSD_Active 'A' /* 活動状態にする */
#define KSD_BuffActive 'B' /* 外部プログラム起動無し活動状態にする */
#define KSD_OnceActive 'O' /* 一時活動状態にする */
#define KSD_Pause 'P' /* 休止状態にする */
#define KSD_Stop 'S' /* 完全停止状態にする */
#define KSD_WFMusi 'E' /* 書き込みFull時に書き込めない部分は無視する */
#define KSD_WFFull 'F' /* 書き込みFull時に古いデータを消して書き込む */
#define KSD_CLEAR KSD_Clear
#define KSD_ACTIVE KSD_Active
#define KSD_PAUSE KSD_Pause
//
#define KSD_CheckFull 1 /* バッファーフルチェック */
#define KSD_CheckEmpty 2 /* バッファー空チェック */
#define KSD_Rcheck 3 /* 先行読みだし */
#define KSD_Read 4 /* 読みだし */
#define KSD_Write 5 /* 書き込み */
#define KSD_ReadMode 6 /* 内部状態読みだし */
#define KSD_ReadVer 7 /* バージョン読みだし */
#define KSD_ReadSize 8 /* バッファーサイズ読みだし */
#define KSD_ReadFree 9 /* バッファーフリーサイズ読みだし */
#define KSD_LinkEFunc 10 /* 外部起動プログラム登録 */
#define KSD_UnlinkEFunc 11 /* 外部起動プログラム登録解除 */
#define KSD_JLock 12 /* 常駐ロック */
#define KSD_JUnlock 13 /* 常駐アンロック */
#define KSD_Read1 14 /* 1byte読みだし */
#define KSD_Write1 15 /* 1byte書き込み */
#define KSD_B_KEYINP 16 /* B_KEYINP */
#define KSD_B_KEYSNS 17 /* B_KEYSNS */
#define KSD_B_SFTSNS 18 /* B_SFTSNS */
#define KSD_ExecEFunc 19 /* 外部起動プログラム強制起動 */
#define KSD_DevNameA 20 /* デバイス名取得 (v1.7) */
// 状態:コマンド名と同じ(ただし、すべてのコマンドに対応する状態があるわけではない)
#define KSD_ST_Active KSD_Active /* 活動状態 */
#define KSD_ST_BuffActive KSD_BuffActive /* 外部プログラム起動無し活動状態 */
#define KSD_ST_OnceActive KSD_OnceActive /* 一時活動状態 */
#define KSD_ST_Pause KSD_Pause /* 休止状態 */
#define KSD_ST_Stop KSD_Stop /* 完全停止状態 */
#define KSD_ST_WFMusi KSD_WFMusi /* 書き込みFull時に書き込めない部分は無視する */
#define KSD_ST_WFFull KSD_WFFull /* 書き込みFull時に古いデータを消して書き込む */
#define KSD_ST_ACTIVE KSD_ST_Active
#define KSD_ST_PAUSE KSD_ST_Pause
// コマンド名(文字列)for KSDSetStatus() : V1.5から変更になっているので注意!!
#define KSD_Clear_S "C" /* キーバッファークリア */
#define KSD_Active_S "A" /* 活動状態にする */
#define KSD_BuffActive_S "B" /* 外部プログラム起動無し活動状態にする */
#define KSD_OnceActive_S "O" /* 一時活動状態にする */
#define KSD_Pause_S "P" /* 休止状態にする */
#define KSD_Stop_S "S" /* 完全停止状態にする */
#define KSD_WFMusi_S "E" /* 書き込みFull時に書き込めない部分は無視する */
#define KSD_WFFull_S "F" /* 書き込みFull時に古いデータを消して書き込む */
#define KSD_CLEAR_S KSD_Clear_S
#define KSD_ACTIVE_S KSD_Active_S
#define KSD_PAUSE_S KSD_Pause_S
/* KSD関数はプロトタイプ宣言のみ用意 */
#ifdef __cplusplus /* G++対応 */
extern "C" {
#endif
int KSDCheck(void);
int KSDSetStatus(char *);
int KSDReadStatus(char *);
int KSDSetData(UBYTE *);
void KSDDevName(UBYTE *); // V1.7
// API関数(V1.5)
int KSDSetAPI(void);
long KSDCallAPI(UBYTE);
long KSDCallAPI1d(UBYTE,long);
long KSDCallAPI1a(UBYTE,void *);
long KSDCallAPI2(UBYTE,void *,long);
//
long KSDRead(UBYTE *,int );
long KSDWrite(UBYTE *,int );
int KSDLinkEFunc(KSD_EF *);
int KSDUnlinkEFunc(KSD_EF *);
void KSDClear(void);
void KSDPause(void);
void KSDStop(void);
void KSDActive(void);
void KSDOnceActive(void);
void KSDBuffActive(void);
void KSDWFMusi(void);
void KSDWFFull(void);
int KSDCheckFull(void);
int KSDCheckEmpty(void);
int KSDRcheck(void);
ULONG KSDReadMode(void);
int KSDReadVer(void);
long KSDReadSize(void);
long KSDReadFree(void);
int KSDJLock(void);
int KSDJUnlock(void);
int KSDRead1(void);
int KSDWrite1(UBYTE);
int KSDB_KEYINP(void);
int KSDB_KEYSNS(void);
int KSDB_SFTSNS(void);
int KSDExecEFunc(KSD_EF *);
void KSDDevNameA(UBYTE *); // V1.7
#ifdef __cplusplus
}
#endif
// #define定義関数
#define KSDClear() KSDCallAPI(KSD_Clear)
#define KSDPause() KSDCallAPI(KSD_Pause)
#define KSDStop() KSDCallAPI(KSD_Stop)
#define KSDActive() KSDCallAPI(KSD_Active)
#define KSDBuffActive() KSDCallAPI(KSD_BuffActive)
#define KSDOnceActive() KSDCallAPI(KSD_OnceActive)
#define KSDWFMusi() KSDCallAPI(KSD_WFMusi)
#define KSDWFFull() KSDCallAPI(KSD_WFFull)
#define KSDCheckFull() KSDCallAPI(KSD_CheckFull)
#define KSDCheckEmpty() KSDCallAPI(KSD_CheckEmpty)
#define KSDRcheck() KSDCallAPI(KSD_Rcheck)
#define KSDReadMode() KSDCallAPI(KSD_ReadMode)
#define KSDReadVer() KSDCallAPI(KSD_ReadVer)
#define KSDReadSize() KSDCallAPI(KSD_ReadSize)
#define KSDReadFree() KSDCallAPI(KSD_ReadFree)
#define KSDJLock() KSDCallAPI(KSD_JLock)
#define KSDJUnlock() KSDCallAPI(KSD_JUnlock)
#define KSDB_KEYINP() KSDCallAPI(KSD_B_KEYINP)
#define KSDB_KEYSNS() KSDCallAPI(KSD_B_KEYSNS)
#define KSDB_SFTSNS() KSDCallAPI(KSD_B_SFTSNS)
//
#define KSDRead1() KSDCallAPI(KSD_Read1)
#define KSDWrite1(dt) KSDCallAPI1d(KSD_Write1,dt)
#define KSDLinkEFunc(ef) KSDCallAPI1a(KSD_LinkEFunc,ef)
#define KSDUnlinkEFunc(ef) KSDCallAPI1a(KSD_UnlinkEFunc,ef)
#define KSDExecEFunc(ef) KSDCallAPI1a(KSD_ExecEFunc,ef)
#define KSDDevNameA(nm) KSDCallAPI1a(KSD_DevNameA,nm) // V1.7
#define KSDRead(buff,size) KSDCallAPI2(KSD_Read,buff,size)
#define KSDWrite(buff,size) KSDCallAPI2(KSD_Write,buff,size)
#endif